﻿using System;

namespace Tsanie.ShellExt
{
    /// <summary>
    /// 插件种类
    /// </summary>
    public enum ProviderType
    {
        Thumbnail,
        ContextMenu,
        Icon,
        InfoTip,
        PropertySheet
    }

    /// <summary>
    /// 插件基类
    /// </summary>
    public abstract class BaseProvider : MarshalByRefObject
    {
        /// <summary>
        /// Obtains a lifetime service object to control the lifetime policy for this instance.
        /// </summary>
        public override object InitializeLifetimeService() { return null; }

        /// <summary>
        /// 获取插件名称
        /// </summary>
        public abstract string ProviderName { get; }
        /// <summary>
        /// 获取插件类型
        /// </summary>
        public abstract ProviderType Type { get; }
        /// <summary>
        /// 获取插件说明
        /// </summary>
        public virtual string Description { get { return null; } }
        /// <summary>
        /// 获取创建者
        /// </summary>
        public abstract string Creator { get; }
        /// <summary>
        /// 获取支持的扩展名
        /// </summary>
        public abstract string[] Exts { get; }
    }
}
